/*!
 * \file dotnet_remoting_core.h
 *
 * \brief 共通定义
 *
 * All Rights Reserved Copyright (C) 2014 broada,Co.,Ltd.\n
 * 共通使用的宏和结构体
 *
 * \version 1.0
 * \author jikw
 * \date 2015/11/30
 *
 */
#ifndef __DOTNET_REMOTING_CORE_H_
#define __DOTNET_REMOTING_CORE_H_

#include "conntrack.h"
#include "module.h"

#define DOTNET_REMOTING_DATA_TYPE_BOOL          0x01
#define DOTNET_REMOTING_DATA_TYPE_BYTE          0x02
#define DOTNET_REMOTING_DATA_TYPE_CHAR          0x03
#define DOTNET_REMOTING_DATA_TYPE_NOTUSED       0x04//The value is not used in the protocol.
#define DOTNET_REMOTING_DATA_TYPE_DECIMAL       0x05
#define DOTNET_REMOTING_DATA_TYPE_DOUBLE        0x06
#define DOTNET_REMOTING_DATA_TYPE_INT16         0x07
#define DOTNET_REMOTING_DATA_TYPE_INT32         0x08
#define DOTNET_REMOTING_DATA_TYPE_INT64         0x09
#define DOTNET_REMOTING_DATA_TYPE_SBYTE         0x0a
#define DOTNET_REMOTING_DATA_TYPE_SINGLE        0x0b
#define DOTNET_REMOTING_DATA_TYPE_TIMESPAN      0x0c
#define DOTNET_REMOTING_DATA_TYPE_DATATIME      0x0d
#define DOTNET_REMOTING_DATA_TYPE_UINT16        0x0e
#define DOTNET_REMOTING_DATA_TYPE_UINT32        0x0f
#define DOTNET_REMOTING_DATA_TYPE_UINT64        0x10
#define DOTNET_REMOTING_DATA_TYPE_NULL          0x11
#define DOTNET_REMOTING_DATA_TYPE_STRING        0x12

#define TYPE_LEN        2
#define TEMP_LEN        16
#define NAME_LEN        128

int dotnet_remoting_detect(Conntrack *p_st_conn, Apm_packet *p_st_packet);
int dotnet_remoting_analysis(Conntrack *p_st_conn
                  , Apm_packet *p_st_packet
                  , Frhash_header *p_st_hash_report);
int dotnet_remoting_session_destroy(void *p_private_session);

#endif